package com.example.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

/**
 * 员工信息表
 */
@Data
@TableName("emp_employee")
public class Employee implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 员工ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 工号
     */
    private String empNo;

    /**
     * 姓名
     */
    private String name;

    /**
     * 性别 0-未知 1-男 2-女
     */
    private Integer gender;

    /**
     * 出生日期
     */
    private Date birthday;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 婚姻状况 0-未婚 1-已婚 2-离异
     */
    private Integer maritalStatus;

    /**
     * 政治面貌
     */
    private String politicalStatus;

    /**
     * 民族
     */
    private String nationality;

    /**
     * 籍贯
     */
    private String nativePlace;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 最高学历 1-小学 2-初中 3-高中 4-大专 5-本科 6-硕士 7-博士
     */
    private Integer education;

    /**
     * 毕业院校
     */
    private String graduateSchool;

    /**
     * 专业
     */
    private String major;

    /**
     * 毕业时间
     */
    private Date graduationDate;

    /**
     * 入职时间
     */
    private Date entryDate;

    /**
     * 工作年限
     */
    private BigDecimal workYears;

    /**
     * 部门ID
     */
    private Long deptId;

    /**
     * 岗位
     */
    private String position;

    /**
     * 职级
     */
    private String jobLevel;

    /**
     * 转正状态 0-试用期 1-已转正 2-已离职
     */
    private Integer employmentStatus;

    /**
     * 转正日期
     */
    private Date regularDate;

    /**
     * 合同开始日期
     */
    private Date contractStartDate;

    /**
     * 合同结束日期
     */
    private Date contractEndDate;

    /**
     * 合同类型 1-固定期限 2-无固定期限 3-实习
     */
    private Integer contractType;

    /**
     * 紧急联系人
     */
    private String emergencyContact;

    /**
     * 紧急联系人电话
     */
    private String emergencyPhone;

    /**
     * 现居地址
     */
    private String address;

    /**
     * 社保账号
     */
    private String socialSecurityNo;

    /**
     * 公积金账号
     */
    private String houseFundNo;

    /**
     * 银行卡号
     */
    private String bankCardNo;

    /**
     * 开户行
     */
    private String bankName;

    /**
     * 基本工资
     */
    private BigDecimal basicSalary;

    /**
     * 状态 0-禁用 1-正常
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /**
     * 创建者
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 更新者
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /**
     * 是否删除 0-否 1-是
     */
    @TableLogic
    private Integer deleted;
} 